home *** CD-ROM | disk | FTP | other *** search
/ Apple WWDC 1996 / WWDC96_1996 (CD).toast / Technology Materials / MacOS 8 Resources / Developer Tools / Mac OS 8 Interfaces & Libraries / Interfaces / CIncludes / TextCommon.h < prev    next >
C/C++ Source or Header  |  1996-05-01  |  41KB  |  1,124 lines

  1. /*
  2.      File:        TextCommon.h
  3.  
  4.      Contains:    Definitions for common text types, values for them, and related routines 
  5.  
  6.      Version:    Technology:    System 8
  7.                  Release:    Universal Interfaces 3.0d3 on Copland DR1
  8.  
  9.      Copyright:    © 1984-1996 by Apple Computer, Inc.  All rights reserved.
  10.  
  11.      Bugs?:        If you find a problem with this file, send the file and version
  12.                  information (from above) and the problem description to:
  13.  
  14.                      Internet:    apple.bugs@applelink.apple.com
  15.                      AppleLink:    APPLE.BUGS
  16.  
  17. */
  18. #ifndef __TEXTCOMMON__
  19. #define __TEXTCOMMON__
  20.  
  21. #ifndef __TYPES__
  22. #include <Types.h>
  23. #endif
  24.  
  25. #ifdef __cplusplus
  26. extern "C" {
  27. #endif
  28.  
  29. #if PRAGMA_IMPORT_SUPPORTED
  30. #pragma import on
  31. #endif
  32.  
  33. #if PRAGMA_ALIGN_SUPPORTED
  34. #pragma options align=mac68k
  35. #endif
  36.  
  37. #if FOR_SYSTEM7_AND_SYSTEM8_PREEMPTIVE
  38. /*
  39.     LocaleLanguageCodes are derived from the alpha-3 character codes
  40.     in ISO 639. (see comment below)
  41.     
  42.     LocaleRegionCodes are derived from the alpha-2 codes in ISO 1399. 
  43.     (see comment below)
  44.     
  45.     Apple does not maintain the contents of these lists.  For that
  46.     we rely on ISO. Additionally, Apple will not attempt to create an enumerated
  47.     type containing the ISO language and territory codes.  Instead this file
  48.     contains two very long comments containing all the codes we know of at this
  49.     point in time (Nov. 1995).  To obtain the most up to date list you will
  50.     need to contact ISO.
  51.     
  52.     LocaleLanguageCode and LocaleRegionCodes along with LocaleCustomizationCodes
  53.     are used to create LocaleIdentifiers.  LocaleIdentifiers are packed
  54.     32-bit combinations of language and region information that can be
  55.     used to tag international data.
  56.  
  57.     To create a  LocaleIdentifiers find the language you are interested in
  58.     see the long comment labeled "ISO CD 639-2 Language Codes."
  59.         
  60.     Next find the two character code that matches the territory/region you
  61.     are interested in.  These are located in the comment labeled
  62.     "Codes from ISO 3166." 
  63.     
  64.     This can then be passed to the function CreateLocaleIdentifier like 
  65.     this:
  66.         CreateLocaleIdentifier(
  67.                                 'eng',        //english
  68.                                 'AU',        //Australian
  69.                                 0
  70.                             )
  71.  
  72.     In some cases there is more than one alpha-3 symbol for a given
  73.     language.  Although, you can certainly create a LocaleIdentifier
  74.     from any of these symbols Apple has chosen preferred symbols which
  75.     will be used in Apple's localizations.  Where there are more than
  76.     one alpha-3 language symbol for a given language the preferred symbol
  77.     is the first one in the list. The second item in the list gives
  78.     both of the ISO codes.
  79.     i.e.
  80.         sqi        Albanian
  81.           alb/sqi Albanian
  82.  
  83. */
  84. typedef UInt32 LocaleIdentifier;
  85. /* Create correctly spelled versions of kSystemDefaultLocaleIdentifer and */
  86. /* kUserDefaultLocaleIdentifer.  Leave the misspelled symbols in so nobody breaks. */
  87.  
  88. enum {
  89.     kLocaleIdentifierWildCard    = 0x00000000,
  90.     kSystemDefaultLocaleIdentifer = 0x7FFFFFFF,
  91.     kSystemDefaultLocaleIdentifier = 0x7FFFFFFF,
  92.     kUserDefaultLocaleIdentifer    = 0x7EEEEEEE,
  93.     kUserDefaultLocaleIdentifier = 0x7EEEEEEE
  94. };
  95.  
  96. typedef OSType LocaleLanguageCode;
  97.  
  98. enum {
  99.     kLocaleLanguageWildCard        = 0x00000000
  100. };
  101.  
  102. typedef UInt16 LocaleRegionCode;
  103. typedef UInt16 LocaleCustomizationCode;
  104.  
  105. enum {
  106.     kLocaleRegionWildCard        = 0x0000,
  107.     kLocaleCustomizationWildCard = 0x0000
  108. };
  109.  
  110. /* TextEncodingBase type & values */
  111. /* (values 0-32 correspond to the Script Codes defined in Inside Macintosh: Text pages 6-52 and 6-53 */
  112. typedef UInt32 TextEncodingBase;
  113.  
  114. enum {
  115.                                                                 /* Mac OS encodings*/
  116.     kTextEncodingMacRoman        = 0L,
  117.     kTextEncodingMacJapanese    = 1L,
  118.     kTextEncodingMacTradChinese    = 2L,
  119.     kTextEncodingMacKorean        = 3L,
  120.     kTextEncodingMacArabic        = 4L,
  121.     kTextEncodingMacHebrew        = 5L,
  122.     kTextEncodingMacGreek        = 6L,
  123.     kTextEncodingMacCyrillic    = 7L,
  124.     kTextEncodingMacRSymbol        = 8L,
  125.     kTextEncodingMacDevanagari    = 9L,
  126.     kTextEncodingMacGurmukhi    = 10L,
  127.     kTextEncodingMacGujarati    = 11L,
  128.     kTextEncodingMacOriya        = 12L,
  129.     kTextEncodingMacBengali        = 13L,
  130.     kTextEncodingMacTamil        = 14L,
  131.     kTextEncodingMacTelugu        = 15L,
  132.     kTextEncodingMacKannada        = 16L,
  133.     kTextEncodingMacMalayalam    = 17L,
  134.     kTextEncodingMacSinhalese    = 18L,
  135.     kTextEncodingMacBurmese        = 19L,
  136.     kTextEncodingMacKhmer        = 20L,
  137.     kTextEncodingMacThai        = 21L,
  138.     kTextEncodingMacLaotian        = 22L,
  139.     kTextEncodingMacGeorgian    = 23L,
  140.     kTextEncodingMacArmenian    = 24L,
  141.     kTextEncodingMacSimpChinese    = 25L,
  142.     kTextEncodingMacTibetan        = 26L,
  143.     kTextEncodingMacMongolian    = 27L,
  144.     kTextEncodingMacGeez        = 28L,
  145.     kTextEncodingMacEastEurRoman = 29,
  146.     kTextEncodingMacCentralEurRoman = 29,
  147.     kTextEncodingMacVietnamese    = 30,
  148.     kTextEncodingMacExtArabic    = 31,
  149.     kTextEncodingMacUninterp    = 32,
  150.     kTextEncodingMacSymbol        = 33,
  151.     kTextEncodingMacDingbats    = 34,
  152.     kTextEncodingMacTurkish        = 35,
  153.     kTextEncodingMacCroatian    = 36,
  154.     kTextEncodingMacIcelandic    = 37,
  155.     kTextEncodingMacRomanian    = 38,
  156.     kTextEncodingMacUkrainian    = 152,
  157.     kTextEncodingMacBulgarian    = 153,
  158.     kTextEncodingMacHFS            = 0xFF,                            /* Meta-value, should never appear in a table.*/
  159.                                                                 /* Unicode & ISO UCS encodings begin at 0x100*/
  160.     kTextEncodingUnicodeDefault    = 0x0100,                        /* Meta-value, should never appear in a table.*/
  161.     kTextEncodingUnicodeV1_1    = 0x0101,
  162.     kTextEncodingISO10646_1993    = 0x0102,                        /* can have UCS4 format (Unicode can't)*/
  163.                                                                 /* ISO 8-bit and 7-bit encodings begin at 0x200*/
  164.     kTextEncodingISOLatin1        = 0x0201,                        /* ISO 8859-1*/
  165.     kTextEncodingISOLatin2        = 0x0202,                        /* ISO 8859-2*/
  166.     kTextEncodingISOLatinCyrillic = 0x0205,                        /* ISO 8859-5*/
  167.     kTextEncodingISOLatinArabic    = 0x0206,                        /* ISO 8859-6, = ASMO 708, =DOS CP 708*/
  168.     kTextEncodingISOLatinGreek    = 0x0207,                        /* ISO 8859-7*/
  169.     kTextEncodingISOLatinHebrew    = 0x0208,                        /* ISO 8859-8*/
  170.     kTextEncodingISOLatin5        = 0x0209,                        /* ISO 8859-9*/
  171.                                                                 /* MS-DOS & Windows encodings begin at 0x400*/
  172.     kTextEncodingDOSLatinUS        = 0x0400,                        /* code page 437*/
  173.     kTextEncodingDOSGreek        = 0x0405,                        /* code page 737 (formerly code page 437G)*/
  174.     kTextEncodingDOSBalticRim    = 0x0406,                        /* code page 775*/
  175.     kTextEncodingDOSLatin1        = 0x0410,                        /* code page 850, "Multilingual"*/
  176.     kTextEncodingDOSGreek1        = 0x0411,                        /* code page 851*/
  177.     kTextEncodingDOSLatin2        = 0x0412,                        /* code page 852, Slavic*/
  178.     kTextEncodingDOSCyrillic    = 0x0413,                        /* code page 855, IBM Cyrillic*/
  179.     kTextEncodingDOSTurkish        = 0x0414,                        /* code page 857, IBM Turkish*/
  180.     kTextEncodingDOSPortuguese    = 0x0415,                        /* code page 860*/
  181.     kTextEncodingDOSIcelandic    = 0x0416,                        /* code page 861*/
  182.     kTextEncodingDOSHebrew        = 0x0417,                        /* code page 862*/
  183.     kTextEncodingDOSCanadianFrench = 0x0418,                    /* code page 863*/
  184.     kTextEncodingDOSArabic        = 0x0419,                        /* code page 864*/
  185.     kTextEncodingDOSNordic        = 0x041A,                        /* code page 865*/
  186.     kTextEncodingDOSRussian        = 0x041B,                        /* code page 866*/
  187.     kTextEncodingDOSGreek2        = 0x041C,                        /* code page 869, IBM Modern Greek*/
  188.     kTextEncodingDOSThai        = 0x041D,                        /* code page 874, also used for Windows*/
  189.     kTextEncodingDOSJapanese    = 0x0420,                        /* code page 932, also used for Windows*/
  190.     kTextEncodingDOSChineseSimplif = 0x0421,                    /* code page 936, also used for Windows*/
  191.     kTextEncodingDOSKorean        = 0x0422,                        /* code page 949, also used for Windows*/
  192.     kTextEncodingDOSChineseTrad    = 0x0423,                        /* code page 950, also used for Windows*/
  193.     kTextEncodingWindowsLatin1    = 0x0500,                        /* code page 1252*/
  194.     kTextEncodingWindowsANSI    = 0x0500,                        /* code page 1252 (alternate name)*/
  195.     kTextEncodingWindowsLatin2    = 0x0501,                        /* code page 1250, Central Europe*/
  196.     kTextEncodingWindowsCyrillic = 0x0502,                        /* code page 1251, Slavic Cyrillic*/
  197.     kTextEncodingWindowsGreek    = 0x0503,                        /* code page 1253*/
  198.     kTextEncodingWindowsLatin5    = 0x0504,                        /* code page 1254, Turkish*/
  199.     kTextEncodingWindowsHebrew    = 0x0505,                        /* code page 1255*/
  200.     kTextEncodingWindowsArabic    = 0x0506,                        /* code page 1256*/
  201.     kTextEncodingWindowsBalticRim = 0x0507,                        /* code page 1257*/
  202.                                                                 /* Various national standards begin at 0x600*/
  203.     kTextEncodingUS_ASCII        = 0x0600,
  204.     kTextEncodingJIS_X0201_76    = 0x0620,
  205.     kTextEncodingJIS_X0208_83    = 0x0621,
  206.     kTextEncodingJIS_X0208_90    = 0x0622,
  207.     kTextEncodingJIS_X0212_90    = 0x0623,
  208.     kTextEncodingGB_2312_80        = 0x0630,
  209.     kTextEncodingKSC_5601_87    = 0x0640,                        /* ISO 2022 collections begin at 0x800*/
  210.     kTextEncodingISO_2022_JP    = 0x0820,
  211.     kTextEncodingISO_2022_JP_2    = 0x0821,
  212.     kTextEncodingISO_2022_KR    = 0x0840,                        /* EUC collections begin at 0x900*/
  213.     kTextEncodingEUC_JP            = 0x0920,
  214.     kTextEncodingEUC_KR            = 0x0940,                        /* Other defacto standards begin at 0xA00*/
  215.     kTextEncodingShiftJIS        = 0x0A01,                        /* plain Shift-JIS*/
  216.     kTextEncodingKOI8_R            = 0x0A02                        /* Russian internet standard*/
  217. };
  218.  
  219. /* TextEncodingVariant type & values */
  220. typedef UInt32 TextEncodingVariant;
  221.  
  222. enum {
  223.                                                                 /* Default TextEncodingVariant, for any TextEncodingBase*/
  224.     kTextEncodingDefaultVariant    = 0,                            /* Variants of kTextEncodingMacJapanese*/
  225.     kJapaneseStandardVariant    = 0,
  226.     kJapaneseStdNoVerticalsVariant = 1,
  227.     kJapaneseBasicVariant        = 2,
  228.     kJapanesePostScriptScrnVariant = 3,
  229.     kJapanesePostScriptPrintVariant = 4,
  230.     kJapaneseVertAtKuPlusTenVariant = 5,                        /* Variants of kTextEncodingMacHebrew*/
  231.     kHebrewStandardVariant        = 0,
  232.     kHebrewFigureSpaceVariant    = 1,                            /* Variants of kTextEncodingUnicodeV1_1*/
  233.     kUnicodeNoSubset            = 0,
  234.     kUnicodeNoCompatibilityVariant = 1,
  235.     kUnicodeMaxDecomposedVariant = 2,
  236.     kUnicodeNoComposedVariant    = 3
  237. };
  238.  
  239. /* TextEncodingFormat type & values */
  240. typedef UInt32 TextEncodingFormat;
  241.  
  242. enum {
  243.                                                                 /* Default TextEncodingFormat for Any TextEncodingBase*/
  244.     kTextEncodingDefaultFormat    = 0,                            /* Formats for kTextEncodingUnicodeV1_1*/
  245.     kUnicode16BitFormat            = 0,
  246.     kUnicodeUTF7Format            = 1,
  247.     kUnicodeUTF8Format            = 2,                            /* Formats for kTextEncodingISO10646_1993*/
  248.     kISO10646UCS2Format            = 0
  249. };
  250.  
  251. /* TextEncoding type */
  252. typedef UInt32 TextEncoding;
  253. /* enums for TextEncoding Conversion routines */
  254.  
  255. enum {
  256.     kTextScriptDontCare            = -128,
  257.     kTextLanguageDontCare        = -128,
  258.     kTextRegionDontCare            = -128
  259. };
  260.  
  261. /* Character Group and Class */
  262. typedef UInt8 CharacterGroup;
  263.  
  264. enum {
  265.     kCharGroupAny                = 0,                            /* wildcard*/
  266.     kCharGroupControl            = 1,
  267.     kCharGroupCommon            = 2,
  268.     kCharGroupRomanNumeral        = 4,
  269.     kCharGroupLatin                = 8,
  270.     kCharGroupGreek                = 9,
  271.     kCharGroupCyrillic            = 10,
  272.     kCharGroupArmenian            = 11,
  273.     kCharGroupHebrew            = 12,
  274.     kCharGroupArabic            = 13,
  275.     kCharGroupIndicCommon        = 14,
  276.     kCharGroupDevanagari        = 15,
  277.     kCharGroupBengali            = 16,
  278.     kCharGroupGurmukhi            = 17,
  279.     kCharGroupGujarati            = 18,
  280.     kCharGroupOriya                = 19,
  281.     kCharGroupTamil                = 20,
  282.     kCharGroupTelugu            = 21,
  283.     kCharGroupKannada            = 22,
  284.     kCharGroupMalayalam            = 23,
  285.     kCharGroupSinhala            = 24,
  286.     kCharGroupThai                = 25,
  287.     kCharGroupLao                = 26,
  288.     kCharGroupBurmese            = 27,
  289.     kCharGroupKhmer                = 28,
  290.     kCharGroupTibetan            = 29,
  291.     kCharGroupMongolian            = 30,
  292.     kCharGroupGeorgian            = 31,
  293.     kCharGroupEthiopic            = 32,
  294.     kCharGroupCJKCommon            = 48,
  295.     kCharGroupJapaneseCommon    = 49,
  296.     kCharGroupKanaCommon        = 50,
  297.     kCharGroupHiragana            = 51,
  298.     kCharGroupKatakana            = 52,
  299.     kCharGroupBopomofo            = 53,
  300.     kCharGroupJamoHangul        = 54,
  301.     kCharGroupCJKIdeograph        = 55,
  302.     kCharGroupUserDefined        = 62
  303. };
  304.  
  305. typedef UInt8 CharacterSubgroup;
  306. typedef UInt8 CharacterClass;
  307.  
  308. enum {
  309.     kCharClassAny                = 0,                            /* wildcard*/
  310.     kCharClassLetter            = 1,
  311.     kCharClassNumber            = 2,
  312.     kCharClassSeparator            = 3,
  313.     kCharClassPunctuation        = 4,
  314.     kCharClassSymbol            = 5,
  315.     kCharClassControl            = 6,
  316.     kCharClassUndefined            = 7
  317. };
  318.  
  319. typedef UInt8 CharacterSubclass;
  320. /* subclass wildcard for all classes*/
  321.  
  322. enum {
  323.     kCharSubclassAny            = 0
  324. };
  325.  
  326. /* subclasses for class letter*/
  327.  
  328. enum {
  329.     kCharSubclassLetterBasic    = 1,
  330.     kCharSubclassLetterModifier    = 2,
  331.     kCharSubclassLetterCombining = 3,
  332.     kCharSubclassLetterWordAbbrev = 4
  333. };
  334.  
  335. /* subclasses for class number*/
  336.  
  337. enum {
  338.     kCharSubclassNumberBasic    = 1,
  339.     kCharSubclassNumberFraction    = 2
  340. };
  341.  
  342. /* subclasses for class separator*/
  343.  
  344. enum {
  345.     kCharSubclassSeparatorSpace    = 1,
  346.     kCharSubclassSeparatorNoBreak = 2,
  347.     kCharSubclassSeparatorTab    = 3,
  348.     kCharSubclassSeparatorLineBreak = 4
  349. };
  350.  
  351. /* subclasses for class symbol*/
  352.  
  353. enum {
  354.     kCharSubclassSymbolOther    = 1,
  355.     kCharSubclassSymbolMath        = 2,
  356.     kCharSubclassSymbolCurrency    = 3,
  357.     kCharSubclassSymbolCombining = 4
  358. };
  359.  
  360. typedef UInt16 CharacterSubclassMask;
  361.  
  362. enum {
  363.     kCharLetterBasicMask        = 1 << kCharSubclassLetterBasic,
  364.     kCharLetterModifierMask        = 1 << kCharSubclassLetterModifier,
  365.     kCharLetterCombiningMask    = 1 << kCharSubclassLetterCombining,
  366.     kCharLetterWordAbbrevMask    = 1 << kCharSubclassLetterWordAbbrev,
  367.     kCharNumberBasicMask        = 1 << kCharSubclassNumberBasic,
  368.     kCharNumberFractionMask        = 1 << kCharSubclassNumberFraction,
  369.     kCharSeparatorSpaceMask        = 1 << kCharSubclassSeparatorSpace,
  370.     kCharSeparatorNoBreakMask    = 1 << kCharSubclassSeparatorNoBreak,
  371.     kCharSeparatorTabMask        = 1 << kCharSubclassSeparatorTab,
  372.     kCharSeparatorLineBreakMask    = 1 << kCharSubclassSeparatorLineBreak,
  373.     kCharSymbolOtherMask        = 1 << kCharSubclassSymbolOther,
  374.     kCharSymbolMathMask            = 1 << kCharSubclassSymbolMath,
  375.     kCharSymbolCurrencyMask        = 1 << kCharSubclassSymbolCurrency
  376. };
  377.  
  378. /* Prototypes for LocaleIdentifier functions */
  379. extern LocaleIdentifier CreateLocaleIdentifier(LocaleLanguageCode language, LocaleRegionCode region, LocaleCustomizationCode customization);
  380.  
  381. extern LocaleLanguageCode GetLocaleLanguage(LocaleIdentifier identifier);
  382.  
  383. extern LocaleRegionCode GetLocaleRegion(LocaleIdentifier identifier);
  384.  
  385. extern LocaleCustomizationCode GetLocaleCustomization(LocaleIdentifier identifier);
  386.  
  387. /* Prototypes for TextEncoding functions */
  388. extern pascal TextEncoding CreateTextEncoding(TextEncodingBase encodingBase, TextEncodingVariant encodingVariant, TextEncodingFormat encodingFormat)
  389.  THREEWORDINLINE(0x303C, 0x0615, 0xABCE);
  390.  
  391. extern pascal TextEncodingBase GetTextEncodingBase(TextEncoding encoding)
  392.  THREEWORDINLINE(0x303C, 0x0216, 0xABCE);
  393.  
  394. extern pascal TextEncodingVariant GetTextEncodingVariant(TextEncoding encoding)
  395.  THREEWORDINLINE(0x303C, 0x0217, 0xABCE);
  396.  
  397. extern pascal TextEncodingFormat GetTextEncodingFormat(TextEncoding encoding)
  398.  THREEWORDINLINE(0x303C, 0x0218, 0xABCE);
  399.  
  400. #endif
  401. #if FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE
  402. extern pascal OSStatus UpgradeScriptInfoToTextEncoding(ScriptCode textScriptID, LangCode textLanguageID, RegionCode regionID, ConstStr255Param textFontname, TextEncoding *encoding)
  403.  THREEWORDINLINE(0x303C, 0x0710, 0xABCE);
  404.  
  405. extern pascal OSStatus RevertTextEncodingToScriptInfo(TextEncoding encoding, ScriptCode *textScriptID, LangCode *textLanguageID, Str255 textFontname)
  406.  THREEWORDINLINE(0x303C, 0x0811, 0xABCE);
  407.  
  408. #endif
  409. #if FOR_SYSTEM8_COOPERATIVE
  410. extern OSStatus UpgradeScriptInfoToLocaleIdentifier(ScriptCode script, LangCode language, RegionCode region, ConstStr255Param fontName, LocaleIdentifier *identifier);
  411.  
  412. extern OSStatus RevertLocaleIdentifierToScriptInfo(LocaleIdentifier identifier, ScriptCode *script, LangCode *language, Str255 fontName);
  413.  
  414. #endif
  415. #if FOR_SYSTEM7_AND_SYSTEM8_PREEMPTIVE
  416. typedef FourCharCode CharPropertyType;
  417.  
  418. enum {
  419.     kCharPropertyTypeFlags        = 'flag',
  420.     kCharPropertyTypeClass        = 'clas',
  421.     kCharPropertyTypeGroup        = 'grup',
  422.     kCharPropertyTypeDirection    = 'dirc',
  423.     kCharPropertyTypeReorderPri    = 'reor',
  424.     kCharPropertyTypeToken        = 'tokn',
  425.     kCharPropertyTypeCtypes        = 'ctyp'
  426. };
  427.  
  428. typedef UInt32 CharPropertyValue;
  429. extern OSStatus GetCharacterProperties(BytePtr charPtr, TextEncoding encoding, ItemCount propertyCount, CharPropertyType typeList[], CharPropertyValue valueList[]);
  430.  
  431. #endif
  432. /*
  433. ----------------------------------------------------------------------------
  434.  
  435. ISO CD 639-2 Language Codes
  436.  
  437. ----------------------------------------------------------------------------
  438.  
  439. This is a extract of a paper called ISO CD 639/2 Draft Proposal, titled
  440. "Code for the representation of names of languages, alpha-3 code" dated
  441. 12/16/91.
  442.  
  443.    * Typed in by Keld.Simonsen@dkuug.dk 1993-11-11
  444.  
  445.   Table 3
  446.   Alpha-3 symbols arranged alphabetically by symbol
  447.  
  448.   Symbol  Language name
  449.  
  450.   abk     Abkhazian
  451.   ace     Achinese
  452.   ach     Acoli
  453.   ada     Adangme
  454.   aar     Afar
  455.   afr     Africaans
  456.   afh     Afrihili
  457.   afa     Afro-Asiatic (Other)
  458.   aka     Akan
  459.   akk     Akkadian
  460.   sqi      Albanian
  461.   alb/sqi Albanian
  462.   ale     Aleut
  463.   alg     Algonquian languages
  464.   ajm     Aljamia
  465.   tut     Altaic (Other)
  466.   amh     Amharic
  467.   apa     Apache languages
  468.   ara     Arabic
  469.   arc     Aramaic
  470.   arp     Arapaho
  471.   arn     Araucanian
  472.   arw     Arawak
  473.   hye     Armenian
  474.   hye/arm Armenian
  475.   art     Artificial (Other)
  476.   asm     Assamese
  477.   ath     Athapascan languages
  478.   map     Austronesian (Other)
  479.   ava     Avaric
  480.   ave     Avestan
  481.   awa     Awandhi
  482.   aym     Aymara
  483.   aze     Azerbaijani
  484.   nah     Aztec
  485.   ban     Balinese
  486.   bat     Baltic (Other)
  487.   bal     Baluchi
  488.   bam     Bambara
  489.   bai     Bamileke languages
  490.   bad     Banda
  491.   bas     Basa
  492.   bak     Bashkir
  493.   eus     Basque
  494.   baq/eus Basque
  495.   bej     Beja
  496.   bem     Bemba
  497.   ben     Bengali
  498.   ber     Berber languages
  499.   bho     Bhojpuri
  500.   bih     Bihari
  501.   bik     Bikol
  502.   bin     Bini
  503.   bis     Bislama
  504.   bra     Braj
  505.   bre     Breton
  506.   bug     Buginese
  507.   bul     Bulgarian
  508.   mya     Burmese
  509.   bur/mya Burmese
  510.   bel     Byelorussian
  511.   cad     Caddo
  512.   car     Carib
  513.   cat     Catalan
  514.   cau     Caucasian (Other)
  515.   ceb     Cebuano
  516.   cel     Celtic (Other)
  517.   cai     Central American Indian (Other)
  518.   chg     Chagatai
  519.   cha     Chamorro
  520.   che     Chechen
  521.   chr     Cherokee
  522.   chy     Cheyenne
  523.   chb     Chibcha
  524.   zho     Chinese
  525.   zho/chi Chinese
  526.   chn     Chinook jargon
  527.   cho     Choctaw
  528.   chu     Church Slavic
  529.   chv     Chuvash
  530.   cop     Coptic
  531.   cor     Cornish
  532.   cos     Corsican
  533.   cre     Cree
  534.   mus     Creek
  535.   cpe     Creoles and pidgins, English-based (Other)
  536.   crp     Creoles and pidgins (Other)
  537.   cpp     Creoles and pidgins, Portuguese-based (Other)
  538.   cpf     Creoles and pidgins, French-based (Other)
  539.   cus     Cushitic (Other)
  540.   ces     Czech
  541.   ces/cze Czeck
  542.   dak     Dakota
  543.   dan     Danish
  544.   del     Delaware
  545.   din     Dinka
  546.   doi     Dogri
  547.   dra     Dravidian (Other)
  548.   dua     Duala
  549.   nld     Dutch
  550.   dut/nld Dutch
  551.   dum     Dutch, Middle (ca. 1050-1350)
  552.   dyu     Dyula
  553.   dzo     Dzongkha
  554.   efi     Efik
  555.   egy     Egyptian (Ancient)
  556.   eka     Ekajuk
  557.   elx     Elamite
  558.   eng     English
  559.   enm     English, Middle (1100-1500)
  560.   ang     English, Old (ca. 450-1100)
  561.   esk     Eskimo (Other)
  562.   epo     Esperanto
  563.   est     Estonian
  564.   eth     Ethiopic
  565.   ewe     Ewe
  566.   ewo     Ewondo
  567.   fan     Fang
  568.   fat     Fanti
  569.   fao     Faroese
  570.   fij     Fijian
  571.   fin     Finnish
  572.   fiu     Finno-Ugrian (Other)
  573.   fon     Fon
  574.   fra     French
  575.   fra/fre French
  576.   fro     French, Old (ca. 842-1400)
  577.   frm     French, Middel (ca. 1400-1600)
  578.   fry     Friesian
  579.   ful     Fulah
  580.   gaa     Ga
  581.   gdh     Gaelic (Scots)
  582.   gdh/gae Gaelic (Scots)
  583.   glg     Gallegan
  584.   lug     Ganda
  585.   gay     Gayo
  586.   kat     Georgian
  587.   geo/kat Georgian
  588.   deu     German
  589.   ger/deu German
  590.   goh     German, Old High (ca. 750-1050)
  591.   gmh     German, Middle High (ca. 1050-1500)
  592.   gem     Germanic (Other)
  593.   gil     Gilbertese
  594.   gon     Gondi
  595.   got     Gothic
  596.   grb     Grebo
  597.   ell     Greek, Modern (1453- )
  598.   gre/ell Greek, Modern (1453- )
  599.   grc     Greek, Ancient (to 1453)
  600.   kal     Greenlandic
  601.   grn     Guarani
  602.   guj     Gujarati
  603.   hai     Haida
  604.   hau     Hausa
  605.   haw     Hawaiian
  606.   heb     Hebrew
  607.   her     Herero
  608.   hil     Hiligaynon
  609.   him     Himachali
  610.   hin     Hindi
  611.   hmo     Hiri Motu
  612.   hun     Hungarian
  613.   hup     Hupa
  614.   iba     Iban
  615.   isl     Icelandic
  616.   ice/isl Icelandic
  617.   ibo     Igbo
  618.   ijo     Ijo
  619.   ilo     Iloko
  620.   inc     Indic (Other)
  621.   ine     Indo-European (Other)
  622.   ind     Indonesian
  623.   ina     Interlingua (International Auxilary Language Association)
  624.   ile     Interlingue
  625.   iku     Inuktitut
  626.   ipk     Inupiak
  627.   ira     Iranian (Other)
  628.   gai     Irish
  629.   iri/gai Irish
  630.   iro     Iroquoian languages
  631.   ita     Italian
  632.   jpn     Japanese
  633.   jaw     Javanese
  634.   jav/jaw Javanese
  635.   jrb     Judeo-Arabic
  636.   jpr     Judeo-Persian
  637.   kab     Kabyle
  638.   kac     Kachin
  639.   kam     Kamba
  640.   kan     Kannada
  641.   kau     Kanuri
  642.   kaa     Kara-Kalpak
  643.   kar     Karen
  644.   kas     Kashmiri
  645.   kaw     Kawi
  646.   kaz     Kazakh
  647.   kha     Khasi
  648.   khm     Khmer
  649.   khi     Khoisan (Other)
  650.   kho     Khotanese
  651.   kik     Kikuyu
  652.   kin     Kinyarwanda
  653.   kir     Kirghiz
  654.   kon     Kongo
  655.   kok     Konkani
  656.   kor     Korean
  657.   kpe     Kpelle
  658.   kro     Kru
  659.   kua     Kuanyama
  660.   kur     Kurdish
  661.   kru     Kurukh
  662.   kus     Kusaie
  663.   kut     Kutenai
  664.   lad     Ladino
  665.   lah     Lahnda
  666.   lam     Lamba
  667.   oci     Langue d'oc (post 1500)
  668.   lao     Lao
  669.   lap     Lapp languages
  670.   lat     Latin
  671.   lav     Latvian
  672.   lin     Lingala
  673.   lit     Lithuanian
  674.   loz     Lozi
  675.   lub     Luba-Katanga
  676.   lui     Luiseno
  677.   lun     Lunda
  678.   luo     Luo (Kenya and Tanzania)
  679.   mke     Macedonian
  680.   mac/mke Macedonian
  681.   mad     Madurese
  682.   mag     Magahi
  683.   mai     Maithili
  684.   mak     Makasar
  685.   mlg     Malagasy
  686.   msa     Malay
  687.   may/msa Malay
  688.   mal     Malayalam
  689.   mlt     Maltese
  690.   man     Mandingo
  691.   mni     Manipuri
  692.   mno     Manobo languages
  693.   max     Manx
  694.   mri     Maori
  695.   mri/mao Maori
  696.   mar     Marathi
  697.   mah     Marshall
  698.   mwr     Marwari
  699.   mas     Masai
  700.   myn     Mayan languages
  701.   men     Mende
  702.   mic     Micmac
  703.   min     Minangkabau
  704.   mis     Miscellaneous (Other)
  705.   moh     Mohawk
  706.   mol     Moldavian
  707.   mkh     Mon-Khmer (Other)
  708.   lol     Mongo
  709.   mon     Mongolian
  710.   mos     Mossi
  711.   mul     Multiple languages
  712.   mun     Munda (Other)
  713.   nau     Nauru
  714.   nav     Navajo
  715.   nde     Ndebele (Zimbabwe)
  716.   ndo     Ndonga
  717.   nep     Nepali
  718.   new     Newari
  719.   nic     Niger-Kordofanian (Other)
  720.   ssa     Nilo-Saharan (Other)
  721.   niu     Niuean
  722.   nai     North American Indian (Other)
  723.   nso     Northern Sohto
  724.   nor     Norwegian
  725.   nub     Nubian languages
  726.   nym     Nyamwezi
  727.   nya     Nyanja
  728.   nyn     Nyankole
  729.   nyo     Nyoro
  730.   nzi     Nzima
  731.   oji     Ojibwa
  732.   non     Old Norse
  733.   peo     Old Persian (ca. 600-400 B.C.)
  734.   ori     Oriya
  735.   orm     Oromo
  736.   osa     Osage
  737.   oss     Ossetic
  738.   oto     Otomian languages
  739.   pal     Pahlavi
  740.   pau     Palauan
  741.   pli     Pali
  742.   pam     Pampanga
  743.   pag     Pangasinan
  744.   pan     Panjabi
  745.   pap     Papiamento
  746.   paa     Papuan-Australian (Other)
  747.   fas     Persian
  748.   fas/per Persian
  749.   pol     Polish
  750.   pon     Ponape
  751.   por     Portuguese
  752.   pra     Prakrit languages
  753.   pro     Provencal, Old (to 1500)
  754.   pus     Pushto
  755.   que     Quechua
  756.   roh     Raeto-Romance
  757.   raj     Rajasthani
  758.   rar     Rarotongan
  759.   roa     Romance (Other)
  760.   rum     Romanian
  761.   ron/rum Romanian
  762.   rom     Romany
  763.   run     Rundi
  764.   rus     Russian
  765.   sal     Salishan languages
  766.   sam     Samaritan Aramaic
  767.   smo     Samoan
  768.   sad     Sandawe
  769.   sag     Sango
  770.   san     Sanskrit
  771.   sco     Scots
  772.   sel     Selkup
  773.   sem     Semitic (Other)
  774.   scr     Serbo-Croatian
  775.   srr     Serer
  776.   shn     Shan
  777.   sna     Shona
  778.   sid     Sidamo
  779.   bla     Siksika
  780.   snd     Sindhi
  781.   sin     Sinhalese
  782.   sit     Sino-Tibetan (Other)
  783.   sio     Siouan languages
  784.   sla     Slavic (Other)
  785.   slk     Slovak
  786.   slo/slk Slovak
  787.   slv     Slovenian
  788.   sog     Sogdian
  789.   som     Somali
  790.   son     Songhai
  791.   wen     Sorbian languages
  792.   sot     Sotho
  793.   sai     South American Indian (Other)
  794.   esl     Spanish
  795.   esl/spa Spanish
  796.   suk     Sukuma
  797.   sux     Sumerian
  798.   sun     Sundanese
  799.   sus     Susu
  800.   swa     Swahili
  801.   ssw     Swazi
  802.   sve     Swedish
  803.   swe/sve Swedish
  804.   syr     Syriac
  805.   tgl     Tagalog
  806.   tah     Tahitian
  807.   tgk     Tajik
  808.   tam     Tamil
  809.   tat     Tatar
  810.   tel     Telugu
  811.   ter     Tereno
  812.   tha     Thai
  813.   bod     Tibetan
  814.   tib/bod Tibetan
  815.   tig     Tigre
  816.   tir     Tigrinya
  817.   tem     Timne
  818.   tiv     Tivi
  819.   tli     Tlingit
  820.   ton     Tonga (Tonga Islands)
  821.   tog     Tonga (Nyasa)
  822.   tru     Truk
  823.   tsi     Tsimshian
  824.   tso     Tsonga
  825.   tsn     Tswana
  826.   tum     Tumbuka
  827.   tur     Turkish
  828.   ota     Turkish, Ottoman
  829.   tuk     Turkmen
  830.   twi     Twi
  831.   uga     Ugaritic
  832.   uig     Uighur
  833.   ukr     Ukrainian
  834.   umb     Umbundu
  835.   und     Undetermined
  836.   urd     Urdu
  837.   uzb     Uzbek
  838.   vai     Vai
  839.   ven     Venda
  840.   vie     Vietnamese
  841.   vol     Volapuk
  842.   vot     Votic
  843.   wak     Wakashan languages
  844.   wal     Walamo
  845.   war     Waray
  846.   was     Washo
  847.   cym       Welsh
  848.   cym/wel Welsh
  849.   wol     Wolof
  850.   xho     Xhosa
  851.   yao     Yao
  852.   yap     Yap
  853.   yid     Yiddish
  854.   yor     Yoruba
  855.   zap     Zapotec
  856.   zen     Zenaga
  857.   zha     Zhuang
  858.   zul     Zulu
  859.   zun     Zuni
  860. */
  861. /*
  862.  
  863. Codes from ISO 3166 
  864.  
  865. Updated by the RIPE Network Coordination Centre, in coordination with
  866. the ISO 3166 Maintenance Agency, Berlin
  867.  
  868. Country                                         A 2     A 3     Number
  869. ----------------------------------------------------------------------
  870. AFGHANISTAN                                     AF      AFG     004
  871. ALBANIA                                         AL      ALB     008
  872. ALGERIA                                         DZ      DZA     012
  873. AMERICAN SAMOA                                  AS      ASM     016
  874. ANDORRA                                         AD      AND     020
  875. ANGOLA                                          AO      AGO     024
  876. ANGUILLA                                        AI      AIA     660
  877. ANTARCTICA                                      AQ      ATA     010
  878. ANTIGUA AND BARBUDA                             AG      ATG     028
  879. ARGENTINA                                       AR      ARG     032
  880. ARMENIA                                         AM      ARM     051  
  881. ARUBA                                           AW      ABW     533
  882. AUSTRALIA                                       AU      AUS     036
  883. AUSTRIA                                         AT      AUT     040
  884. AZERBAIJAN                                      AZ      AZE     031  
  885. BAHAMAS                                         BS      BHS     044
  886. BAHRAIN                                         BH      BHR     048
  887. BANGLADESH                                      BD      BGD     050
  888. BARBADOS                                        BB      BRB     052
  889. BELARUS                                         BY      BLR     112  
  890. BELGIUM                                         BE      BEL     056
  891. BELIZE                                          BZ      BLZ     084
  892. BENIN                                           BJ      BEN     204
  893. BERMUDA                                         BM      BMU     060
  894. BHUTAN                                          BT      BTN     064
  895. BOLIVIA                                         BO      BOL     068
  896. BOSNIA AND HERZEGOWINA                          BA      BIH     070
  897. BOTSWANA                                        BW      BWA     072
  898. BOUVET ISLAND                                   BV      BVT     074
  899. BRAZIL                                          BR      BRA     076
  900. BRITISH INDIAN OCEAN TERRITORY                  IO      IOT     086
  901. BRUNEI DARUSSALAM                               BN      BRN     096
  902. BULGARIA                                        BG      BGR     100
  903. BURKINA FASO                                    BF      BFA     854
  904. BURUNDI                                         BI      BDI     108
  905. CAMBODIA                                        KH      KHM     116
  906. CAMEROON                                        CM      CMR     120
  907. CANADA                                          CA      CAN     124
  908. CAPE VERDE                                      CV      CPV     132
  909. CAYMAN ISLANDS                                  KY      CYM     136
  910. CENTRAL AFRICAN REPUBLIC                        CF      CAF     140
  911. CHAD                                            TD      TCD     148
  912. CHILE                                           CL      CHL     152
  913. CHINA                                           CN      CHN     156
  914. CHRISTMAS ISLAND                                CX      CXR     162
  915. COCOS (KEELING) ISLANDS                         CC      CCK     166
  916. COLOMBIA                                        CO      COL     170
  917. COMOROS                                         KM      COM     174
  918. CONGO                                           CG      COG     178
  919. COOK ISLANDS                                    CK      COK     184
  920. COSTA RICA                                      CR      CRI     188
  921. COTE D'IVOIRE                                   CI      CIV     384
  922. CROATIA (local name: Hrvatska)                  HR      HRV     191      
  923. CUBA                                            CU      CUB     192
  924. CYPRUS                                          CY      CYP     196
  925. CZECH REPUBLIC                                  CZ      CZE     203  
  926. DENMARK                                         DK      DNK     208
  927. DJIBOUTI                                        DJ      DJI     262
  928. DOMINICA                                        DM      DMA     212
  929. DOMINICAN REPUBLIC                              DO      DOM     214
  930. EAST TIMOR                                      TP      TMP     626
  931. ECUADOR                                         EC      ECU     218
  932. EGYPT                                           EG      EGY     818
  933. EL SALVADOR                                     SV      SLV     222
  934. EQUATORIAL GUINEA                               GQ      GNQ     226
  935. ERITREA                                        ER       ERI    232
  936. ESTONIA                                         EE      EST     233  
  937. ETHIOPIA                                        ET      ETH     210
  938. FALKLAND ISLANDS (MALVINAS)                     FK      FLK     238
  939. FAROE ISLANDS                                   FO      FRO     234
  940. FIJI                                            FJ      FJI     242
  941. FINLAND                                         FI      FIN     246
  942. FRANCE                                          FR      FRA     250
  943. FRANCE, METROPOLITAN                            FX      FXX     249  
  944. FRENCH GUIANA                                   GF      GUF     254
  945. FRENCH POLYNESIA                                PF      PYF     258
  946. FRENCH SOUTHERN TERRITORIES                     TF      ATF     260
  947. GABON                                           GA      GAB     266
  948. GAMBIA                                          GM      GMB     270
  949. GEORGIA                                         GE      GEO     268  
  950. GERMANY                                         DE      DEU     276
  951. GHANA                                           GH      GHA     288
  952. GIBRALTAR                                       GI      GIB     292
  953. GREECE                                          GR      GRC     300
  954. GREENLAND                                       GL      GRL     304
  955. GRENADA                                         GD      GRD     308
  956. GUADELOUPE                                      GP      GLP     312
  957. GUAM                                            GU      GUM     316
  958. GUATEMALA                                       GT      GTM     320
  959. GUINEA                                          GN      GIN     324
  960. GUINEA-BISSAU                                   GW      GNB     624
  961. GUYANA                                          GY      GUY     328
  962. HAITI                                           HT      HTI     332
  963. HEARD AND MC DONALD ISLANDS                     HM      HMD     334
  964. HONDURAS                                        HN      HND     340
  965. HONG KONG                                       HK      HKG     344
  966. HUNGARY                                         HU      HUN     348
  967. ICELAND                                         IS      ISL     352
  968. INDIA                                           IN      IND     356
  969. INDONESIA                                       ID      IDN     360
  970. IRAN (ISLAMIC REPUBLIC OF)                      IR      IRN     364
  971. IRAQ                                            IQ      IRQ     368
  972. IRELAND                                         IE      IRL     372
  973. ISRAEL                                          IL      ISR     376
  974. ITALY                                           IT      ITA     380
  975. JAMAICA                                         JM      JAM     388
  976. JAPAN                                           JP      JPN     392
  977. JORDAN                                          JO      JOR     400
  978. KAZAKHSTAN                                      KZ      KAZ     398  
  979. KENYA                                           KE      KEN     404
  980. KIRIBATI                                        KI      KIR     296
  981. KOREA, DEMOCRATIC PEOPLE'S REPUBLIC OF          KP      PRK     408
  982. KOREA, REPUBLIC OF                              KR      KOR     410
  983. KUWAIT                                          KW      KWT     414
  984. KYRGYZSTAN                                      KG      KGZ     417  
  985. LAO PEOPLE'S DEMOCRATIC REPUBLIC                LA      LAO     418
  986. LATVIA                                          LV      LVA     428  
  987. LEBANON                                         LB      LBN     422
  988. LESOTHO                                         LS      LSO     426
  989. LIBERIA                                         LR      LBR     430
  990. LIBYAN ARAB JAMAHIRIYA                          LY      LBY     434
  991. LIECHTENSTEIN                                   LI      LIE     438
  992. LITHUANIA                                       LT      LTU     440  
  993. LUXEMBOURG                                      LU      LUX     442
  994. MACAU                                           MO      MAC     446
  995. MACEDONIA, THE FORMER YUGOSLAV REPUBLIC OF      MK      MKD     807 (provis)
  996. MADAGASCAR                                      MG      MDG     450
  997. MALAWI                                          MW      MWI     454
  998. MALAYSIA                                        MY      MYS     458
  999. MALDIVES                                        MV      MDV     462
  1000. MALI                                            ML      MLI     466
  1001. MALTA                                           MT      MLT     470
  1002. MARSHALL ISLANDS                                MH      MHL     584
  1003. MARTINIQUE                                      MQ      MTQ     474
  1004. MAURITANIA                                      MR      MRT     478
  1005. MAURITIUS                                       MU      MUS     480
  1006. MAYOTTE                                         YT      MYT     175  
  1007. MEXICO                                          MX      MEX     484
  1008. MICRONESIA, FEDERATED STATES OF                 FM      FSM     583
  1009. MOLDOVA, REPUBLIC OF                            MD      MDA     498  
  1010. MONACO                                          MC      MCO     492
  1011. MONGOLIA                                        MN      MNG     496
  1012. MONTSERRAT                                      MS      MSR     500
  1013. MOROCCO                                         MA      MAR     504
  1014. MOZAMBIQUE                                      MZ      MOZ     508
  1015. MYANMAR                                         MM      MMR     104
  1016. NAMIBIA                                         NA      NAM     516
  1017. NAURU                                           NR      NRU     520
  1018. NEPAL                                           NP      NPL     524
  1019. NETHERLANDS                                     NL      NLD     528
  1020. NETHERLANDS ANTILLES                            AN      ANT     530
  1021. NEW CALEDONIA                                   NC      NCL     540
  1022. NEW ZEALAND                                     NZ      NZL     554
  1023. NICARAGUA                                       NI      NIC     558
  1024. NIGER                                           NE      NER     562
  1025. NIGERIA                                         NG      NGA     566
  1026. NIUE                                            NU      NIU     570
  1027. NORFOLK ISLAND                                  NF      NFK     574
  1028. NORTHERN MARIANA ISLANDS                        MP      MNP     580
  1029. NORWAY                                          NO      NOR     578
  1030. OMAN                                            OM      OMN     512
  1031. PAKISTAN                                        PK      PAK     586
  1032. PALAU                                           PW      PLW     585
  1033. PANAMA                                          PA      PAN     591
  1034. PAPUA NEW GUINEA                                PG      PNG     598
  1035. PARAGUAY                                        PY      PRY     600
  1036. PERU                                            PE      PER     604
  1037. PHILIPPINES                                     PH      PHL     608
  1038. PITCAIRN                                        PN      PCN     612
  1039. POLAND                                          PL      POL     616
  1040. PORTUGAL                                        PT      PRT     620
  1041. PUERTO RICO                                     PR      PRI     630
  1042. QATAR                                           QA      QAT     634
  1043. REUNION                                         RE      REU     638
  1044. ROMANIA                                         RO      ROM     642
  1045. RUSSIAN FEDERATION                              RU      RUS     643
  1046. RWANDA                                          RW      RWA     646
  1047. SAINT KITTS AND NEVIS                           KN      KNA     659
  1048. SAINT LUCIA                                     LC      LCA     662
  1049. SAINT VINCENT AND THE GRENADINES                VC      VCT     670
  1050. SAMOA                                           WS      WSM     882
  1051. SAN MARINO                                      SM      SMR     674
  1052. SAO TOME AND PRINCIPE                           ST      STP     678
  1053. SAUDI ARABIA                                    SA      SAU     682
  1054. SENEGAL                                         SN      SEN     686
  1055. SEYCHELLES                                      SC      SYC     690
  1056. SIERRA LEONE                                    SL      SLE     694
  1057. SINGAPORE                                       SG      SGP     702
  1058. SLOVAKIA (Slovak Republic)                      SK      SVK     703  
  1059. SLOVENIA                                        SI      SVN     705  
  1060. SOLOMON ISLANDS                                 SB      SLB     090
  1061. SOMALIA                                         SO      SOM     706
  1062. SOUTH AFRICA                                    ZA      ZAF     710
  1063. SPAIN                                           ES      ESP     724
  1064. SRI LANKA                                       LK      LKA     144
  1065. ST. HELENA                                      SH      SHN     654
  1066. ST. PIERRE AND MIQUELON                         PM      SPM     666
  1067. SUDAN                                           SD      SDN     736
  1068. SURINAME                                        SR      SUR     740
  1069. SVALBARD AND JAN MAYEN ISLANDS                  SJ      SJM     744
  1070. SWAZILAND                                       SZ      SWZ     748
  1071. SWEDEN                                          SE      SWE     752
  1072. SWITZERLAND                                     CH      CHE     756
  1073. SYRIAN ARAB REPUBLIC                            SY      SYR     760
  1074. TAIWAN, PROVINCE OF CHINA                       TW      TWN     158
  1075. TAJIKISTAN                                      TJ      TJK     762  
  1076. TANZANIA, UNITED REPUBLIC OF                    TZ      TZA     834
  1077. THAILAND                                        TH      THA     764
  1078. TOGO                                            TG      TGO     768
  1079. TOKELAU                                         TK      TKL     772
  1080. TONGA                                           TO      TON     776
  1081. TRINIDAD AND TOBAGO                             TT      TTO     780
  1082. TUNISIA                                         TN      TUN     788
  1083. TURKEY                                          TR      TUR     792
  1084. TURKMENISTAN                                    TM      TKM     795  
  1085. TURKS AND CAICOS ISLANDS                        TC      TCA     796
  1086. TUVALU                                          TV      TUV     798
  1087. UGANDA                                          UG      UGA     800
  1088. UKRAINE                                         UA      UKR     804
  1089. UNITED ARAB EMIRATES                            AE      ARE     784
  1090. UNITED KINGDOM                                  GB      GBR     826
  1091. UNITED STATES                                   US      USA     840
  1092. UNITED STATES MINOR OUTLYING ISLANDS            UM      UMI     581
  1093. URUGUAY                                         UY      URY     858
  1094. UZBEKISTAN                                      UZ      UZB     860  
  1095. VANUATU                                         VU      VUT     548
  1096. VATICAN CITY STATE (HOLY SEE)                   VA      VAT     336
  1097. VENEZUELA                                       VE      VEN     862
  1098. VIET NAM                                        VN      VNM     704
  1099. VIRGIN ISLANDS (BRITISH)                        VG      VGB     092
  1100. VIRGIN ISLANDS (U.S.)                           VI      VIR     850
  1101. WALLIS AND FUTUNA ISLANDS                       WF      WLF     876
  1102. WESTERN SAHARA                                  EH      ESH     732
  1103. YEMEN                                           YE      YEM     887
  1104. YUGOSLAVIA                                      YU      YUG     891
  1105. ZAIRE                                           ZR      ZAR     180
  1106. ZAMBIA                                          ZM      ZMB     894
  1107. ZIMBABWE                                        ZW      ZWE     716
  1108. */
  1109.  
  1110. #if PRAGMA_ALIGN_SUPPORTED
  1111. #pragma options align=reset
  1112. #endif
  1113.  
  1114. #if PRAGMA_IMPORT_SUPPORTED
  1115. #pragma import off
  1116. #endif
  1117.  
  1118. #ifdef __cplusplus
  1119. }
  1120. #endif
  1121.  
  1122. #endif /* __TEXTCOMMON__ */
  1123.  
  1124.